

/* this ALWAYS GENERATED file contains the definitions for the interfaces */


 /* File created by MIDL compiler version 6.00.0366 */
/* at Mon May 10 17:45:25 2010
 */
/* Compiler settings for OcfEx.idl:
    Os, W1, Zp8, env=Win32 (32b run)
    protocol : dce , ms_ext, c_ext
    error checks: allocation ref bounds_check enum stub_data 
    VC __declspec() decoration level: 
         __declspec(uuid()), __declspec(selectany), __declspec(novtable)
         DECLSPEC_UUID(), MIDL_INTERFACE()
*/
//@@MIDL_FILE_HEADING(  )

#pragma warning( disable: 4049 )  /* more than 64k source lines */


/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 440
#endif

#include "rpc.h"
#include "rpcndr.h"

#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif // __RPCNDR_H_VERSION__

#ifndef COM_NO_WINDOWS_H
#include "windows.h"
#include "ole2.h"
#endif /*COM_NO_WINDOWS_H*/

#ifndef __OcfEx_h__
#define __OcfEx_h__

#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif

/* Forward Declarations */ 

#ifndef __IEnumExtInfos_FWD_DEFINED__
#define __IEnumExtInfos_FWD_DEFINED__
typedef interface IEnumExtInfos IEnumExtInfos;
#endif 	/* __IEnumExtInfos_FWD_DEFINED__ */


#ifndef __IControlOcfEx_FWD_DEFINED__
#define __IControlOcfEx_FWD_DEFINED__
typedef interface IControlOcfEx IControlOcfEx;
#endif 	/* __IControlOcfEx_FWD_DEFINED__ */


#ifndef __IControlOcfEx2_FWD_DEFINED__
#define __IControlOcfEx2_FWD_DEFINED__
typedef interface IControlOcfEx2 IControlOcfEx2;
#endif 	/* __IControlOcfEx2_FWD_DEFINED__ */


#ifndef __OcfExComponent_FWD_DEFINED__
#define __OcfExComponent_FWD_DEFINED__

#ifdef __cplusplus
typedef class OcfExComponent OcfExComponent;
#else
typedef struct OcfExComponent OcfExComponent;
#endif /* __cplusplus */

#endif 	/* __OcfExComponent_FWD_DEFINED__ */


/* header files for imported files */
#include "oaidl.h"

#ifdef __cplusplus
extern "C"{
#endif 

void * __RPC_USER MIDL_user_allocate(size_t);
void __RPC_USER MIDL_user_free( void * ); 

#ifndef __IEnumExtInfos_INTERFACE_DEFINED__
#define __IEnumExtInfos_INTERFACE_DEFINED__

/* interface IEnumExtInfos */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IEnumExtInfos;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("DDC98C49-48D1-4bc7-8CC3-843D6F8A3EF0")
    IEnumExtInfos : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Next( 
            /* [out] */ LONG *plStatus,
            /* [out] */ BYTE *pbyServiceType,
            /* [string][out] */ unsigned char **ppszName) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Skip( 
            /* [in] */ ULONG ulCelt) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IEnumExtInfosVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IEnumExtInfos * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IEnumExtInfos * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IEnumExtInfos * This);
        
        HRESULT ( STDMETHODCALLTYPE *Next )( 
            IEnumExtInfos * This,
            /* [out] */ LONG *plStatus,
            /* [out] */ BYTE *pbyServiceType,
            /* [string][out] */ unsigned char **ppszName);
        
        HRESULT ( STDMETHODCALLTYPE *Skip )( 
            IEnumExtInfos * This,
            /* [in] */ ULONG ulCelt);
        
        HRESULT ( STDMETHODCALLTYPE *Reset )( 
            IEnumExtInfos * This);
        
        END_INTERFACE
    } IEnumExtInfosVtbl;

    interface IEnumExtInfos
    {
        CONST_VTBL struct IEnumExtInfosVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IEnumExtInfos_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IEnumExtInfos_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IEnumExtInfos_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IEnumExtInfos_Next(This,plStatus,pbyServiceType,ppszName)	\
    (This)->lpVtbl -> Next(This,plStatus,pbyServiceType,ppszName)

#define IEnumExtInfos_Skip(This,ulCelt)	\
    (This)->lpVtbl -> Skip(This,ulCelt)

#define IEnumExtInfos_Reset(This)	\
    (This)->lpVtbl -> Reset(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IEnumExtInfos_Next_Proxy( 
    IEnumExtInfos * This,
    /* [out] */ LONG *plStatus,
    /* [out] */ BYTE *pbyServiceType,
    /* [string][out] */ unsigned char **ppszName);


void __RPC_STUB IEnumExtInfos_Next_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IEnumExtInfos_Skip_Proxy( 
    IEnumExtInfos * This,
    /* [in] */ ULONG ulCelt);


void __RPC_STUB IEnumExtInfos_Skip_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IEnumExtInfos_Reset_Proxy( 
    IEnumExtInfos * This);


void __RPC_STUB IEnumExtInfos_Reset_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IEnumExtInfos_INTERFACE_DEFINED__ */


#ifndef __IControlOcfEx_INTERFACE_DEFINED__
#define __IControlOcfEx_INTERFACE_DEFINED__

/* interface IControlOcfEx */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IControlOcfEx;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("2302A90B-38C8-4d80-90C5-B5D2519E41B5")
    IControlOcfEx : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE fnSetConfigInfo( 
            /* [in] */ USHORT uiServerID,
            /* [in] */ USHORT uiServicePort,
            /* [in] */ USHORT uiThreadsForIocp,
            /* [in] */ USHORT uiAcceptForClient,
            /* [in] */ USHORT uiConcurrentUsers,
            /* [in] */ LONG lIdleTime,
            /* [in] */ USHORT uiSegmentSize,
            /* [in] */ LONG bNagle,
            /* [in] */ USHORT uiKeyTableSize,
            /* [in] */ USHORT uiInitialPacketBufferSize) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnAttachExt( 
            /* [string][in] */ unsigned char *pszName,
            /* [in] */ BYTE byServiceType,
            /* [in] */ CLSID clsidExt,
            /* [string][in] */ unsigned char *pszConfigPath,
            /* [in] */ LONG bEvent) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnDetachExt( 
            /* [in] */ BYTE byServiceType) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnGetExtInfos( 
            /* [out] */ IEnumExtInfos **ppIEnumExtInfos) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnInitialize( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnUninitialize( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnGetStatus( 
            /* [out] */ LONG *plStatus) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnGetSessionCount( 
            /* [out] */ LONG *plSessionCount) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnGetTraceMessage( 
            /* [in] */ ULONG ulMaxLen,
            /* [out] */ LONG *plLen,
            /* [length_is][size_is][out] */ unsigned char *pchData) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnAttachExt2( 
            /* [string][in] */ unsigned char *pszName,
            /* [in] */ BYTE byServiceType,
            /* [in] */ CLSID clsidExt,
            /* [string][in] */ unsigned char *pszConfigPath,
            /* [in] */ LONG bEvent,
            /* [in] */ LONG bDistributor) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnBroadcastMessage( 
            /* [in] */ UINT uiLenMessage,
            /* [size_is][in] */ unsigned char *pchMessage) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnRequestAnything( 
            /* [in] */ BYTE byServiceType,
            /* [in] */ LONG lLenQuery,
            /* [size_is][in] */ unsigned char *pchQuery,
            /* [in] */ ULONG ulMaxLenRet,
            /* [out] */ LONG *plLenRet,
            /* [length_is][max_is][out] */ unsigned char *pchRet) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IControlOcfExVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IControlOcfEx * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IControlOcfEx * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IControlOcfEx * This);
        
        HRESULT ( STDMETHODCALLTYPE *fnSetConfigInfo )( 
            IControlOcfEx * This,
            /* [in] */ USHORT uiServerID,
            /* [in] */ USHORT uiServicePort,
            /* [in] */ USHORT uiThreadsForIocp,
            /* [in] */ USHORT uiAcceptForClient,
            /* [in] */ USHORT uiConcurrentUsers,
            /* [in] */ LONG lIdleTime,
            /* [in] */ USHORT uiSegmentSize,
            /* [in] */ LONG bNagle,
            /* [in] */ USHORT uiKeyTableSize,
            /* [in] */ USHORT uiInitialPacketBufferSize);
        
        HRESULT ( STDMETHODCALLTYPE *fnAttachExt )( 
            IControlOcfEx * This,
            /* [string][in] */ unsigned char *pszName,
            /* [in] */ BYTE byServiceType,
            /* [in] */ CLSID clsidExt,
            /* [string][in] */ unsigned char *pszConfigPath,
            /* [in] */ LONG bEvent);
        
        HRESULT ( STDMETHODCALLTYPE *fnDetachExt )( 
            IControlOcfEx * This,
            /* [in] */ BYTE byServiceType);
        
        HRESULT ( STDMETHODCALLTYPE *fnGetExtInfos )( 
            IControlOcfEx * This,
            /* [out] */ IEnumExtInfos **ppIEnumExtInfos);
        
        HRESULT ( STDMETHODCALLTYPE *fnInitialize )( 
            IControlOcfEx * This);
        
        HRESULT ( STDMETHODCALLTYPE *fnUninitialize )( 
            IControlOcfEx * This);
        
        HRESULT ( STDMETHODCALLTYPE *fnGetStatus )( 
            IControlOcfEx * This,
            /* [out] */ LONG *plStatus);
        
        HRESULT ( STDMETHODCALLTYPE *fnGetSessionCount )( 
            IControlOcfEx * This,
            /* [out] */ LONG *plSessionCount);
        
        HRESULT ( STDMETHODCALLTYPE *fnGetTraceMessage )( 
            IControlOcfEx * This,
            /* [in] */ ULONG ulMaxLen,
            /* [out] */ LONG *plLen,
            /* [length_is][size_is][out] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnAttachExt2 )( 
            IControlOcfEx * This,
            /* [string][in] */ unsigned char *pszName,
            /* [in] */ BYTE byServiceType,
            /* [in] */ CLSID clsidExt,
            /* [string][in] */ unsigned char *pszConfigPath,
            /* [in] */ LONG bEvent,
            /* [in] */ LONG bDistributor);
        
        HRESULT ( STDMETHODCALLTYPE *fnBroadcastMessage )( 
            IControlOcfEx * This,
            /* [in] */ UINT uiLenMessage,
            /* [size_is][in] */ unsigned char *pchMessage);
        
        HRESULT ( STDMETHODCALLTYPE *fnRequestAnything )( 
            IControlOcfEx * This,
            /* [in] */ BYTE byServiceType,
            /* [in] */ LONG lLenQuery,
            /* [size_is][in] */ unsigned char *pchQuery,
            /* [in] */ ULONG ulMaxLenRet,
            /* [out] */ LONG *plLenRet,
            /* [length_is][max_is][out] */ unsigned char *pchRet);
        
        END_INTERFACE
    } IControlOcfExVtbl;

    interface IControlOcfEx
    {
        CONST_VTBL struct IControlOcfExVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IControlOcfEx_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IControlOcfEx_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IControlOcfEx_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IControlOcfEx_fnSetConfigInfo(This,uiServerID,uiServicePort,uiThreadsForIocp,uiAcceptForClient,uiConcurrentUsers,lIdleTime,uiSegmentSize,bNagle,uiKeyTableSize,uiInitialPacketBufferSize)	\
    (This)->lpVtbl -> fnSetConfigInfo(This,uiServerID,uiServicePort,uiThreadsForIocp,uiAcceptForClient,uiConcurrentUsers,lIdleTime,uiSegmentSize,bNagle,uiKeyTableSize,uiInitialPacketBufferSize)

#define IControlOcfEx_fnAttachExt(This,pszName,byServiceType,clsidExt,pszConfigPath,bEvent)	\
    (This)->lpVtbl -> fnAttachExt(This,pszName,byServiceType,clsidExt,pszConfigPath,bEvent)

#define IControlOcfEx_fnDetachExt(This,byServiceType)	\
    (This)->lpVtbl -> fnDetachExt(This,byServiceType)

#define IControlOcfEx_fnGetExtInfos(This,ppIEnumExtInfos)	\
    (This)->lpVtbl -> fnGetExtInfos(This,ppIEnumExtInfos)

#define IControlOcfEx_fnInitialize(This)	\
    (This)->lpVtbl -> fnInitialize(This)

#define IControlOcfEx_fnUninitialize(This)	\
    (This)->lpVtbl -> fnUninitialize(This)

#define IControlOcfEx_fnGetStatus(This,plStatus)	\
    (This)->lpVtbl -> fnGetStatus(This,plStatus)

#define IControlOcfEx_fnGetSessionCount(This,plSessionCount)	\
    (This)->lpVtbl -> fnGetSessionCount(This,plSessionCount)

#define IControlOcfEx_fnGetTraceMessage(This,ulMaxLen,plLen,pchData)	\
    (This)->lpVtbl -> fnGetTraceMessage(This,ulMaxLen,plLen,pchData)

#define IControlOcfEx_fnAttachExt2(This,pszName,byServiceType,clsidExt,pszConfigPath,bEvent,bDistributor)	\
    (This)->lpVtbl -> fnAttachExt2(This,pszName,byServiceType,clsidExt,pszConfigPath,bEvent,bDistributor)

#define IControlOcfEx_fnBroadcastMessage(This,uiLenMessage,pchMessage)	\
    (This)->lpVtbl -> fnBroadcastMessage(This,uiLenMessage,pchMessage)

#define IControlOcfEx_fnRequestAnything(This,byServiceType,lLenQuery,pchQuery,ulMaxLenRet,plLenRet,pchRet)	\
    (This)->lpVtbl -> fnRequestAnything(This,byServiceType,lLenQuery,pchQuery,ulMaxLenRet,plLenRet,pchRet)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IControlOcfEx_fnSetConfigInfo_Proxy( 
    IControlOcfEx * This,
    /* [in] */ USHORT uiServerID,
    /* [in] */ USHORT uiServicePort,
    /* [in] */ USHORT uiThreadsForIocp,
    /* [in] */ USHORT uiAcceptForClient,
    /* [in] */ USHORT uiConcurrentUsers,
    /* [in] */ LONG lIdleTime,
    /* [in] */ USHORT uiSegmentSize,
    /* [in] */ LONG bNagle,
    /* [in] */ USHORT uiKeyTableSize,
    /* [in] */ USHORT uiInitialPacketBufferSize);


void __RPC_STUB IControlOcfEx_fnSetConfigInfo_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IControlOcfEx_fnAttachExt_Proxy( 
    IControlOcfEx * This,
    /* [string][in] */ unsigned char *pszName,
    /* [in] */ BYTE byServiceType,
    /* [in] */ CLSID clsidExt,
    /* [string][in] */ unsigned char *pszConfigPath,
    /* [in] */ LONG bEvent);


void __RPC_STUB IControlOcfEx_fnAttachExt_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IControlOcfEx_fnDetachExt_Proxy( 
    IControlOcfEx * This,
    /* [in] */ BYTE byServiceType);


void __RPC_STUB IControlOcfEx_fnDetachExt_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IControlOcfEx_fnGetExtInfos_Proxy( 
    IControlOcfEx * This,
    /* [out] */ IEnumExtInfos **ppIEnumExtInfos);


void __RPC_STUB IControlOcfEx_fnGetExtInfos_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IControlOcfEx_fnInitialize_Proxy( 
    IControlOcfEx * This);


void __RPC_STUB IControlOcfEx_fnInitialize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IControlOcfEx_fnUninitialize_Proxy( 
    IControlOcfEx * This);


void __RPC_STUB IControlOcfEx_fnUninitialize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IControlOcfEx_fnGetStatus_Proxy( 
    IControlOcfEx * This,
    /* [out] */ LONG *plStatus);


void __RPC_STUB IControlOcfEx_fnGetStatus_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IControlOcfEx_fnGetSessionCount_Proxy( 
    IControlOcfEx * This,
    /* [out] */ LONG *plSessionCount);


void __RPC_STUB IControlOcfEx_fnGetSessionCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IControlOcfEx_fnGetTraceMessage_Proxy( 
    IControlOcfEx * This,
    /* [in] */ ULONG ulMaxLen,
    /* [out] */ LONG *plLen,
    /* [length_is][size_is][out] */ unsigned char *pchData);


void __RPC_STUB IControlOcfEx_fnGetTraceMessage_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IControlOcfEx_fnAttachExt2_Proxy( 
    IControlOcfEx * This,
    /* [string][in] */ unsigned char *pszName,
    /* [in] */ BYTE byServiceType,
    /* [in] */ CLSID clsidExt,
    /* [string][in] */ unsigned char *pszConfigPath,
    /* [in] */ LONG bEvent,
    /* [in] */ LONG bDistributor);


void __RPC_STUB IControlOcfEx_fnAttachExt2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IControlOcfEx_fnBroadcastMessage_Proxy( 
    IControlOcfEx * This,
    /* [in] */ UINT uiLenMessage,
    /* [size_is][in] */ unsigned char *pchMessage);


void __RPC_STUB IControlOcfEx_fnBroadcastMessage_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IControlOcfEx_fnRequestAnything_Proxy( 
    IControlOcfEx * This,
    /* [in] */ BYTE byServiceType,
    /* [in] */ LONG lLenQuery,
    /* [size_is][in] */ unsigned char *pchQuery,
    /* [in] */ ULONG ulMaxLenRet,
    /* [out] */ LONG *plLenRet,
    /* [length_is][max_is][out] */ unsigned char *pchRet);


void __RPC_STUB IControlOcfEx_fnRequestAnything_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IControlOcfEx_INTERFACE_DEFINED__ */


#ifndef __IControlOcfEx2_INTERFACE_DEFINED__
#define __IControlOcfEx2_INTERFACE_DEFINED__

/* interface IControlOcfEx2 */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IControlOcfEx2;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("93FB4E0E-A992-4be8-AEAB-9A3E6C495C5F")
    IControlOcfEx2 : public IControlOcfEx
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE fnNoUseIocp( 
            /* [in] */ USHORT uiServerID) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE fnSetConfigInfo2( 
            /* [in] */ USHORT uiServerID,
            /* [in] */ USHORT uiServicePort,
            /* [in] */ USHORT uiThreadsForIocp,
            /* [in] */ USHORT uiAcceptForClient,
            /* [in] */ USHORT uiConcurrentUsers,
            /* [in] */ LONG lIdleTime,
            /* [in] */ LONG lSendingIdleTime,
            /* [in] */ USHORT uiSegmentSize,
            /* [in] */ LONG bNagle,
            /* [in] */ USHORT uiKeyTableSize,
            /* [in] */ USHORT uiInitialPacketBufferSize) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IControlOcfEx2Vtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IControlOcfEx2 * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IControlOcfEx2 * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IControlOcfEx2 * This);
        
        HRESULT ( STDMETHODCALLTYPE *fnSetConfigInfo )( 
            IControlOcfEx2 * This,
            /* [in] */ USHORT uiServerID,
            /* [in] */ USHORT uiServicePort,
            /* [in] */ USHORT uiThreadsForIocp,
            /* [in] */ USHORT uiAcceptForClient,
            /* [in] */ USHORT uiConcurrentUsers,
            /* [in] */ LONG lIdleTime,
            /* [in] */ USHORT uiSegmentSize,
            /* [in] */ LONG bNagle,
            /* [in] */ USHORT uiKeyTableSize,
            /* [in] */ USHORT uiInitialPacketBufferSize);
        
        HRESULT ( STDMETHODCALLTYPE *fnAttachExt )( 
            IControlOcfEx2 * This,
            /* [string][in] */ unsigned char *pszName,
            /* [in] */ BYTE byServiceType,
            /* [in] */ CLSID clsidExt,
            /* [string][in] */ unsigned char *pszConfigPath,
            /* [in] */ LONG bEvent);
        
        HRESULT ( STDMETHODCALLTYPE *fnDetachExt )( 
            IControlOcfEx2 * This,
            /* [in] */ BYTE byServiceType);
        
        HRESULT ( STDMETHODCALLTYPE *fnGetExtInfos )( 
            IControlOcfEx2 * This,
            /* [out] */ IEnumExtInfos **ppIEnumExtInfos);
        
        HRESULT ( STDMETHODCALLTYPE *fnInitialize )( 
            IControlOcfEx2 * This);
        
        HRESULT ( STDMETHODCALLTYPE *fnUninitialize )( 
            IControlOcfEx2 * This);
        
        HRESULT ( STDMETHODCALLTYPE *fnGetStatus )( 
            IControlOcfEx2 * This,
            /* [out] */ LONG *plStatus);
        
        HRESULT ( STDMETHODCALLTYPE *fnGetSessionCount )( 
            IControlOcfEx2 * This,
            /* [out] */ LONG *plSessionCount);
        
        HRESULT ( STDMETHODCALLTYPE *fnGetTraceMessage )( 
            IControlOcfEx2 * This,
            /* [in] */ ULONG ulMaxLen,
            /* [out] */ LONG *plLen,
            /* [length_is][size_is][out] */ unsigned char *pchData);
        
        HRESULT ( STDMETHODCALLTYPE *fnAttachExt2 )( 
            IControlOcfEx2 * This,
            /* [string][in] */ unsigned char *pszName,
            /* [in] */ BYTE byServiceType,
            /* [in] */ CLSID clsidExt,
            /* [string][in] */ unsigned char *pszConfigPath,
            /* [in] */ LONG bEvent,
            /* [in] */ LONG bDistributor);
        
        HRESULT ( STDMETHODCALLTYPE *fnBroadcastMessage )( 
            IControlOcfEx2 * This,
            /* [in] */ UINT uiLenMessage,
            /* [size_is][in] */ unsigned char *pchMessage);
        
        HRESULT ( STDMETHODCALLTYPE *fnRequestAnything )( 
            IControlOcfEx2 * This,
            /* [in] */ BYTE byServiceType,
            /* [in] */ LONG lLenQuery,
            /* [size_is][in] */ unsigned char *pchQuery,
            /* [in] */ ULONG ulMaxLenRet,
            /* [out] */ LONG *plLenRet,
            /* [length_is][max_is][out] */ unsigned char *pchRet);
        
        HRESULT ( STDMETHODCALLTYPE *fnNoUseIocp )( 
            IControlOcfEx2 * This,
            /* [in] */ USHORT uiServerID);
        
        HRESULT ( STDMETHODCALLTYPE *fnSetConfigInfo2 )( 
            IControlOcfEx2 * This,
            /* [in] */ USHORT uiServerID,
            /* [in] */ USHORT uiServicePort,
            /* [in] */ USHORT uiThreadsForIocp,
            /* [in] */ USHORT uiAcceptForClient,
            /* [in] */ USHORT uiConcurrentUsers,
            /* [in] */ LONG lIdleTime,
            /* [in] */ LONG lSendingIdleTime,
            /* [in] */ USHORT uiSegmentSize,
            /* [in] */ LONG bNagle,
            /* [in] */ USHORT uiKeyTableSize,
            /* [in] */ USHORT uiInitialPacketBufferSize);
        
        END_INTERFACE
    } IControlOcfEx2Vtbl;

    interface IControlOcfEx2
    {
        CONST_VTBL struct IControlOcfEx2Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IControlOcfEx2_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IControlOcfEx2_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IControlOcfEx2_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IControlOcfEx2_fnSetConfigInfo(This,uiServerID,uiServicePort,uiThreadsForIocp,uiAcceptForClient,uiConcurrentUsers,lIdleTime,uiSegmentSize,bNagle,uiKeyTableSize,uiInitialPacketBufferSize)	\
    (This)->lpVtbl -> fnSetConfigInfo(This,uiServerID,uiServicePort,uiThreadsForIocp,uiAcceptForClient,uiConcurrentUsers,lIdleTime,uiSegmentSize,bNagle,uiKeyTableSize,uiInitialPacketBufferSize)

#define IControlOcfEx2_fnAttachExt(This,pszName,byServiceType,clsidExt,pszConfigPath,bEvent)	\
    (This)->lpVtbl -> fnAttachExt(This,pszName,byServiceType,clsidExt,pszConfigPath,bEvent)

#define IControlOcfEx2_fnDetachExt(This,byServiceType)	\
    (This)->lpVtbl -> fnDetachExt(This,byServiceType)

#define IControlOcfEx2_fnGetExtInfos(This,ppIEnumExtInfos)	\
    (This)->lpVtbl -> fnGetExtInfos(This,ppIEnumExtInfos)

#define IControlOcfEx2_fnInitialize(This)	\
    (This)->lpVtbl -> fnInitialize(This)

#define IControlOcfEx2_fnUninitialize(This)	\
    (This)->lpVtbl -> fnUninitialize(This)

#define IControlOcfEx2_fnGetStatus(This,plStatus)	\
    (This)->lpVtbl -> fnGetStatus(This,plStatus)

#define IControlOcfEx2_fnGetSessionCount(This,plSessionCount)	\
    (This)->lpVtbl -> fnGetSessionCount(This,plSessionCount)

#define IControlOcfEx2_fnGetTraceMessage(This,ulMaxLen,plLen,pchData)	\
    (This)->lpVtbl -> fnGetTraceMessage(This,ulMaxLen,plLen,pchData)

#define IControlOcfEx2_fnAttachExt2(This,pszName,byServiceType,clsidExt,pszConfigPath,bEvent,bDistributor)	\
    (This)->lpVtbl -> fnAttachExt2(This,pszName,byServiceType,clsidExt,pszConfigPath,bEvent,bDistributor)

#define IControlOcfEx2_fnBroadcastMessage(This,uiLenMessage,pchMessage)	\
    (This)->lpVtbl -> fnBroadcastMessage(This,uiLenMessage,pchMessage)

#define IControlOcfEx2_fnRequestAnything(This,byServiceType,lLenQuery,pchQuery,ulMaxLenRet,plLenRet,pchRet)	\
    (This)->lpVtbl -> fnRequestAnything(This,byServiceType,lLenQuery,pchQuery,ulMaxLenRet,plLenRet,pchRet)


#define IControlOcfEx2_fnNoUseIocp(This,uiServerID)	\
    (This)->lpVtbl -> fnNoUseIocp(This,uiServerID)

#define IControlOcfEx2_fnSetConfigInfo2(This,uiServerID,uiServicePort,uiThreadsForIocp,uiAcceptForClient,uiConcurrentUsers,lIdleTime,lSendingIdleTime,uiSegmentSize,bNagle,uiKeyTableSize,uiInitialPacketBufferSize)	\
    (This)->lpVtbl -> fnSetConfigInfo2(This,uiServerID,uiServicePort,uiThreadsForIocp,uiAcceptForClient,uiConcurrentUsers,lIdleTime,lSendingIdleTime,uiSegmentSize,bNagle,uiKeyTableSize,uiInitialPacketBufferSize)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IControlOcfEx2_fnNoUseIocp_Proxy( 
    IControlOcfEx2 * This,
    /* [in] */ USHORT uiServerID);


void __RPC_STUB IControlOcfEx2_fnNoUseIocp_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IControlOcfEx2_fnSetConfigInfo2_Proxy( 
    IControlOcfEx2 * This,
    /* [in] */ USHORT uiServerID,
    /* [in] */ USHORT uiServicePort,
    /* [in] */ USHORT uiThreadsForIocp,
    /* [in] */ USHORT uiAcceptForClient,
    /* [in] */ USHORT uiConcurrentUsers,
    /* [in] */ LONG lIdleTime,
    /* [in] */ LONG lSendingIdleTime,
    /* [in] */ USHORT uiSegmentSize,
    /* [in] */ LONG bNagle,
    /* [in] */ USHORT uiKeyTableSize,
    /* [in] */ USHORT uiInitialPacketBufferSize);


void __RPC_STUB IControlOcfEx2_fnSetConfigInfo2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IControlOcfEx2_INTERFACE_DEFINED__ */



#ifndef __OcfExLib_LIBRARY_DEFINED__
#define __OcfExLib_LIBRARY_DEFINED__

/* library OcfExLib */
/* [helpstring][version][uuid] */ 


EXTERN_C const IID LIBID_OcfExLib;

EXTERN_C const CLSID CLSID_OcfExComponent;

#ifdef __cplusplus

class DECLSPEC_UUID("F02325CD-228E-4157-9E69-68AD178558DC")
OcfExComponent;
#endif
#endif /* __OcfExLib_LIBRARY_DEFINED__ */

/* Additional Prototypes for ALL interfaces */

/* end of Additional Prototypes */

#ifdef __cplusplus
}
#endif

#endif


